#include "get_common.h"
#include "../data_struct/head.h"
#include "../global/head.h"
#include "../macro/head.h"
#include "../msg/head.h"
#include "os_init.h"

///////////////////////////////////////////////////////////////////////////////////////////////
// 

namespace sgsj_client
{
    get_common::get_common()
    {
        m_pCommon = 0;
    }

    get_common::~get_common()
    {
        term();
    }

    ///////////////////////////////////////////////////////////////////////////////////////////////
    // 

    int get_common::init()
    {
        int ret = 0;

        xos::i_xos * pXosImpl = g_pSysData->m_os.m_pXos;

        if( 0 == ret )
        {
            xos_common::create( pXosImpl, &m_pCommon );
            if( !m_pCommon )
            {
                ret = 1;
            }
        }

        if( 0 == ret )
        {
            g_pSysData->m_os.m_pCommon = m_pCommon;
        }

        return ret;
    }

    int get_common::term()
    {
        int ret = 0;

        g_pSysData->m_os.m_pCommon = 0;

        if( m_pCommon )
        {
            m_pCommon->release();
            m_pCommon = 0;
        }

        return ret;
    }

} // sgsj_client
